home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / stdwin / Ports / mac / argcargv.c < prev    next >
Text File  |  1995-12-21  |  1KB  |  54 lines

  1. /* MAC STDWIN -- GET ARGC/ARGV. */
  2.  
  3. /* Copy the arguments passed from the finder into argc/argv.
  4.    No Mac C compiler's runtime system does this, making argc/argv
  5.    pretty useless.  By using wargs(&argc, &argv) you get the arguments
  6.    that you expect.  When called to print, a "-p" flag is passed
  7.    before the first argument.
  8.  
  9.    This is for System 6 or earlier.  For System 7, don't use this.
  10.    Use argcargv_ae.c instead.  */
  11.  
  12. #include "macwin.h"
  13.  
  14. /* GetAppParms and friends are obsolete... */
  15. #define OBSOLETE
  16. #include <SegLoad.h>
  17.  
  18. void
  19. wargs(pargc, pargv)
  20.     int *pargc;
  21.     char ***pargv;
  22. {
  23.     L_DECLARE(argc, argv, char *);
  24.     Str255 apname;
  25.     char buf[256];
  26.     short aprefnum;
  27.     Handle apparam;
  28.     short message;
  29.     short count;
  30.     short i;
  31.     
  32.     GetAppParms(apname, &aprefnum, &apparam);
  33. #ifndef CLEVERGLUE
  34.     PtoCstr(apname);
  35. #endif
  36.     L_APPEND(argc, argv, char *, strdup((char *)apname));
  37.     
  38.     CountAppFiles(&message, &count);
  39.     if (message == appPrint) { /* Must have braces around L_*! */
  40.         L_APPEND(argc, argv, char *, "-p");
  41.     }
  42.     
  43.     for (i = 1; i <= count; ++i) {
  44.         AppFile thefile;
  45.         GetAppFiles(i, &thefile);
  46.         fullpath(buf, thefile.vRefNum, PtoCstr(thefile.fName));
  47.         L_APPEND(argc, argv, char *, strdup(buf));
  48.     }
  49.     
  50.     L_APPEND(argc, argv, char *, NULL);
  51.     *pargc = argc - 1;
  52.     *pargv = argv;
  53. }
  54.